Backdrop

프로그래머스 ▸ 코딩 기초 트레이닝

특정 문자열로 끝나는 가장 긴 부분 문자열 찾기
0

문제 설명

문자열 myStringpat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.

제한사항

  • 5 ≤ myString ≤ 20
  • 1 ≤ pat ≤ 5
    • pat은 반드시 myString의 부분 문자열로 주어집니다.
  • myStringpat에 등장하는 알파벳은 대문자와 소문자를 구분합니다.

입출력 예

myStringpatresult
"AbCdEFG""dE""AbCdE"
"AAAAaaaa""a""AAAAaaaa"

입출력 예 설명

입출력 예 #1

  • "AbCdEFG"에서 "dE"는 한 번 등장하며 처음부터 해당 위치까지 잘라내면 "AbCdE"가 됩니다. 따라서 이 문자열이 "dE"로 끝나는 가장 긴 문자열이며, "AbCdE"를 return 합니다.

입출력 예 #2

  • "AAAAaaaa"에서 "a"는 총 네 번 등장하며 이 중 가장 마지막에 있는 위치까지 잘라내면 "AAAAaaaa"가 됩니다. 따라서 이 문자열이 "a"로 끝나는 가장 긴 문자열이며, "AAAAaaaa"를 return 합니다.

풀이

이론

String.prototype.slice()

slice() 메소드는 문자열의 일부를 추출하면서 새로운 문자열을 반환해요.

str.slice(beginIndex[, endIndex])
  • beginIndex 또는 endIndex가 음수인 경우, 문자열의 끝에서부터의 길이를 나타내요.
  • endIndex가 생략된 경우, 문자열 마지막까지 추출해요.
const str = 'The quick brown fox jumps over the lazy dog.';
 
console.log(str.slice(31));
// Expected output: "the lazy dog."
 
console.log(str.slice(4, 19));
// Expected output: "quick brown fox"
 
console.log(str.slice(-4));
// Expected output: "dog."
 
console.log(str.slice(-9, -5));
// Expected output: "lazy"

코드

function solution(myString, pat) {
  return myString.slice(0, myString.lastIndexOf(pat) + pat.length);
}